<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // 封装 打印n行m列表格的功能 函数

    // 1. 创建函数
    function writeTable(n, m){
        // 2. 实现功能
        var trs = "";
        for(var i=0;i<n;i++){
            var tds = "";
            for(var j=0;j<m;j++){
                tds += "<td>&nbsp;"+ i + "-" + j +"&nbsp;</td>";
            }
            trs += "<tr>"+ tds +"</tr>";
        }
        // 3. 返回一个值
        // 将拼接好的表格的结构，返回到外部，在外部决定如何打印到页面
        return "<table border='1'>"+ trs +"</table>"
    }

    // 4. 执行函数并使用返回值
    // document.write( writeTable(3, 5) );
    
    // 伪代码
    // div.write( writeTable(6, 2) );
    // p.write( writeTable(6, 2) );


    // =========

    // 暂时忽略，仅做了解
    
    // 阶乘
    // 5!
    // 5*4...

    // 4!
    // 4*3

    // 1!

    // 递归
    
    // function fa( n ){
    //     if(n === 1){
    //         return 1;
    //     }
    //     return n * fa(n-1);
    // }
    // console.log( fa(5) );

    // 彩蛋


    // ==========

    
    // 封装 计算任意两个数字的（和，差，积，商，余）的 函数

    function computed(num1, num2, oper){
        // 根据传入的符号，决定执行对应的运算，将运算结果直接返回到函数外部
        switch(oper){
            case "+":
                return num1 + num2;
            case "-":
                return num1 - num2;
            case "*":
                return num1 * num2;
            case "/":
                return num1 / num2;
            case "%":
                return num1 % num2;
        }
    }

    console.log( computed( 10, 3, "+" ) );
    console.log( computed( 10, 3, "-" ) );
    console.log( computed( 10, 3, "*" ) );
    console.log( computed( 10, 3, "/" ) );
    console.log( computed( 10, 3, "%" ) );
    




</script>
</html>